In general, the technical field discussed herein includes communications between servers and storage control units over a storage area network (SAN) involving multiple switches and multiple layers of a protocol stack. Contemporary implementations of these communications between servers and storage control units include asynchronous access operations by operating systems within the SAN. Asynchronous access operations require queues and schedulers for initiating the requests, along with interruptions for any associated context switch for processing a completion status. The queues, schedulers, and interruptions result in asynchronous overhead that adds significant latency and processing delays across the SAN.
A SAN, as described by the Storage Networking Industry Association (SNIA), is a high performance network that facilitates storage devices and computer systems to communicate with each other. In large enterprises, multiple computer systems or servers have access to multiple storage control units within the SAN. Typical connections between the servers and control units use technologies such as Ethernet or Fibre-Channel, with associated switches, I/O adapters, device drivers and multiple layers of a protocol stack. Fibre-channel, for example, as defined by the INCITS T11 Committee, defines physical and link layers FC0, FC1, FC2 and FC-4 transport layers such as the Fibre Channel Protocol (FCP) for SCSI and FC-SB-3 for Fibre Connectivity (FICON).
Synchronous I/O causes a software thread to be blocked while waiting for the I/O to complete, but avoids context switches and interrupts. Synchronous I/O works well when the I/O is locally attached with minimal access latency, but as access times increase, the non-productive processor overhead of waiting for the I/O to complete becomes unacceptable for large multi-processing servers. Hence, server access to SAN storage generally uses asynchronous I/O access techniques, due to the large variation in access times, and even the minimum access times of the SAN storage when using synchronous I/O access with the protocols such as Fibre-Channel.